#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
    int a = 12345;
    float b = 1234.567;
    printf("%-8d--\n", a); // 靠右对齐，占8位
    printf("%10.2f\n",b); // 保留两位小数
    printf("%f\n",b); // 默认输出6位小数
    //cout<<setprecision(8)<<a<<endl;

    cout<<setw(8)<<a<<endl; //setw流算子，默认靠右对齐，占8位
    cout<<setiosflags(ios::left)<<setw(8)<<a<<endl;

    cout<<"xxxxxxxxxx"<<endl;
    cout<<b<<endl; // 默认情况下，浮点数输出两位小数，6个有效位数
    cout<<setiosflags(ios::right)<<setw(10)<<b<<endl; // 设置域宽为10，默认右对齐
    b = 1.234567;
    cout<<setw(10)<<setprecision(2)<<setiosflags(ios::fixed)<<b<<endl; // 保留两位小数

    int d = 256;
    printf("%x\n", d); // 输出十六进制
    printf("%d\n", d); // 输出十进制
    printf("%o\n", d); // 输出八进制

    cout<<hex<<d<<endl; // 输出十六进制
    cout<<oct<<d<<endl; // 输出八进制
    cout<<dec<<d<<endl; // 输出十进制 decfault ?

    cout<<setfill('x')<<setiosflags(ios::left)<<setw(8)<<a<<endl;

    int hour = 0, min = 11, sec = 0; // 00:00:00
    cout<<setfill('0')<<setw(2)<<hour<<":"<<setw(2)<<min<<":"<<setw(2)<<sec<<endl;

    return 0;
}